package comment

import "fmt"

// 统一结果返回类

// 定义结构体 用于存储要返回的信息
type Result struct {
	// 状态码
	Code int
	// 错误信息
	Msg string
	// 要返回的数据
	Data any
}

// 重写String方法
func (r *Result) String() string {
	return fmt.Sprintf("{%d %s data:{%v}}", r.Code, r.Msg, r.Data)
}

// 成功请求并附带提示信息
func (r *Result) Success(msg string, data any, code int) *Result {
	return &Result{
		Code: code,
		Msg:  msg,
		Data: data,
	}
}

// 失败请求
func (r *Result) Fail(msg string, code int, data any) *Result {
	return &Result{
		Code: code,
		Msg:  msg,
		Data: data,
	}
}
